#pragma once

#include "../Thread/TaskThread.h"
#include <future>

class MainThread : public TaskThread
{
	std::shared_ptr<std::promise<void>> mStartPromise;

public:

	MainThread(std::shared_ptr<std::promise<void>> startPromise);

	virtual uint32 Setup(const TCHAR* threadName, ThreadPriority threadPriority) override;

	virtual void Kill() override {};

	virtual bool Init() override;

	virtual uint32 Run() override;

	virtual void Stop() override;

	virtual void Exit() override;

};